/* R. J. Cano, Jun 6 2014 */

A080575_by_rows(m,seq=1)={
  my(n=0,l0,l1,l2,l3);
  l0=listcreate();
  listput(l0,[1,vector(1)]);
  l3=listcreate();
  while(n++<=m,
    l1=listcreate();
    l2=listcreate();
    for(k=1,#l0,listput(l1,[1,vector(n)]);listput(l2,[1,vector(n)]);l1[k][1]=l0[k][1];l2[k][1]=l0[k][1];for(j=1,n-1,l1[k][2][j+1]=l0[k][2][j];l2[k][2][j+1]=l0[k][2][j]));
    l0=listcreate();
    for(k=1,#l1,forstep(j=#l1[k][2],1,-1,if(l1[k][2][j],listput(l0,l1[k]);l0[#l0][1]*=l0[#l0][2][j];l0[#l0][2][j]--;if(j>1,l0[#l0][2][(j-1)]++)));l2[k][2][n]++;listput(l0,l2[k]));
    for(u=1,#l0-1,forstep(w=#l0,u+1,-1,if(l0[u][2]==l0[w][2],l0[u][1]+=l0[w][1];l0[w]*=0)));
    l1=l0;
    l0=listcreate();
    for(k=1,#l1,if(l1[k][1],listput(l0,l1[k])));
    if(seq,for(k=1,#l0,listput(l3,l0[k][1])));
  );
  if(seq,l3,l0);
}

/* Note(s):
 * 
 * If seq then #A080575_by_rows() will be: sum(k=1,m,numbpart(k)); Else it will be simply: numbpart(m);
 * 
 */